<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>宏任务与微任务的执行顺序</title>
</head>
<body>
    
</body>
<script>
    /*
        JS中，在主线程的任务执行都是同步执行的  所以也就是谁在前面就先执行谁先输出谁
            promise的微任务在优先级是排在第二，同时微任务的执行过程也是谁在前面就先执行谁就先输出谁
            宏任务的优先级是排在第三，最后才执行宏任务，同时宏任务是谁快就输出谁
    */
    // 下面例子的输出顺序是 主线程，同步 主线程，同步 微任务，异步 宏任务，异步
    setTimeout(() => {
        console.log('宏任务，异步')
    }, 0);
    new Promise((resolve,reject)=>{
        resolve()
        console.log('主线程，同步')
    }).then(()=>{
        console.log('微任务，异步')
    })
    console.log('主线程，同步')
</script>
</html>